// package com.example.apigateway.filters;
//
// import com.example.mallcommon.constant.AuthConstant;
// import org.springframework.cloud.gateway.filter.GatewayFilterChain;
// import org.springframework.cloud.gateway.filter.GlobalFilter;
// import org.springframework.core.Ordered;
// import org.springframework.http.server.reactive.ServerHttpRequest;
// import org.springframework.stereotype.Component;
// import org.springframework.web.server.ServerWebExchange;
// import reactor.core.publisher.Mono;
//
// import java.util.Objects;
//
// /**
//  * Description:
//  * 在请求经过网关时添加额外的Header,传递给后端服务
//  * @author Yang
//  * create time 2021-08-25 0:59
//  * @since 0.0.1
//  */
// @Component
// public class GatewayRequestFilter implements GlobalFilter , Ordered {
//
//     @Override
//     public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
//         //byte[] token = Base64Utils.encode((AuthConstant.GATEWAY_TOKEN_VALUE).getBytes());
//         //String[] headerValues = {new String(token)};
//
//         String  headerValues = Objects.requireNonNull(exchange.getRequest().getHeaders().get(AuthConstant.GATEWAY_TOKEN_HEADER)).toString();
//         ServerHttpRequest build = exchange.getRequest()
//                 .mutate()
//                 .header(AuthConstant.GATEWAY_TOKEN_HEADER, headerValues)
//                 .build();
//
//         ServerWebExchange newExchange = exchange.mutate().request(build).build();
//         return chain.filter(newExchange);
//     }
//
//     /**
//      * 顺序,数值越小,优先级越高
//      */
//     @Override
//     public int getOrder() {
//         return 0;
//     }
// }